home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / libx11inc.lha / X11 / Xm / xm.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  43.4 KB  |  1,438 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC.
  3.  * ALL RIGHTS RESERVED
  4. */ 
  5. /*   $RCSfile: Xm.h,v $ $Revision: 1.92 $ $Date: 92/06/23 12:12:59 $ */
  6. /*
  7. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  8.  
  9. #ifndef _Xm_h
  10. #define _Xm_h
  11.  
  12. #ifndef _NO_PROTO
  13. #if    !(defined(__STDC__) && __STDC__) \
  14.     && !defined(__cplusplus) && !defined(c_plusplus) \
  15.     && !defined(FUNCPROTO) && !defined(XTFUNCPROTO) && !defined(XMFUNCPROTO)
  16. #define _NO_PROTO
  17. #endif /* __STDC__ */
  18. #endif /* _NO_PROTO */
  19.  
  20. #include <X11/Intrinsic.h>
  21. #include <X11/Shell.h>
  22. #include <X11/Xatom.h>
  23. #include <Xm/XmStrDefs.h>
  24. #include <Xm/VirtKeys.h>
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30.  
  31. #define XmVERSION    1
  32. #define XmREVISION    2
  33. #define XmUPDATE_LEVEL    0
  34. #define XmVersion (XmVERSION * 1000 + XmREVISION)
  35. #define XmVERSION_STRING "@(#)OSF/Motif Version 1.2.0"
  36.  
  37. extern int xmUseVersion;
  38.  
  39.  
  40. /* define used to denote an unspecified pixmap  */
  41.  
  42. #define    XmUNSPECIFIED_PIXMAP        2
  43.  
  44. /*******************
  45.  *  
  46.  * Defines for resources to be defaulted by vendors.
  47.  * String are initialized in Xmos.c
  48.  *
  49.  ****************/
  50.  
  51. #define    XmSTRING_OS_CHARSET        XmSTRING_ISO8859_1
  52. #ifndef    XmFALLBACK_CHARSET
  53. #define    XmFALLBACK_CHARSET        XmSTRING_ISO8859_1
  54. #endif
  55.  
  56. #define XmDEFAULT_FONT                  _XmSDEFAULT_FONT
  57. #define XmDEFAULT_BACKGROUND            _XmSDEFAULT_BACKGROUND
  58. #define XmDEFAULT_DARK_THRESHOLD        15
  59. #define XmDEFAULT_LIGHT_THRESHOLD       77
  60. #define XmDEFAULT_FOREGROUND_THRESHOLD  35
  61.  
  62. extern  char    _XmSDEFAULT_FONT[];            /* In Xmos.c */
  63. extern  char    _XmSDEFAULT_BACKGROUND[];      /* In Xmos.c */
  64.  
  65. /****************
  66.  *
  67.  * XmString structure defines. These must be here (at the start of the file) 
  68.  * becaused they are used later on.
  69.  *
  70.  ****************/
  71. typedef enum{ XmFONT_IS_FONT, XmFONT_IS_FONTSET } XmFontType;
  72.  
  73. enum{    XmSTRING_DIRECTION_L_TO_R,    XmSTRING_DIRECTION_R_TO_L
  74.     } ;
  75. #define    XmSTRING_DIRECTION_DEFAULT  ((XmStringDirection) 255)
  76.  
  77. typedef unsigned char *    XmString;        /* opaque to outside */
  78. typedef XmString *    XmStringTable;        /* opaque to outside */
  79. typedef char *        XmStringCharSet;    /* Null term string */
  80. typedef unsigned char    XmStringComponentType;    /* component tags */
  81. typedef unsigned char     XmStringDirection;
  82.  
  83. typedef struct _XmFontListRec       *XmFontListEntry;  /* opaque to outside */
  84. typedef struct _XmFontListRec       *XmFontList;       /* opaque to outside */
  85. typedef struct __XmStringContextRec *_XmStringContext; /* opaque to outside */
  86. typedef struct __XmStringRec        *_XmString;        /* opaque to outside */
  87. typedef struct _XmtStringContextRec *XmStringContext;  /* opaque to outside */
  88. typedef struct _XmFontListContextRec *XmFontContext;   /* opaque to outside */
  89.  
  90. enum{    XmSTRING_COMPONENT_UNKNOWN,    XmSTRING_COMPONENT_CHARSET,
  91.     XmSTRING_COMPONENT_TEXT,    XmSTRING_COMPONENT_DIRECTION,
  92.         XmSTRING_COMPONENT_SEPARATOR,   XmSTRING_COMPONENT_LOCALE_TEXT
  93.     /* 6-125 reserved */
  94.     } ;
  95.  
  96. #define XmSTRING_COMPONENT_END        ((XmStringComponentType) 126)
  97.  
  98. #define XmSTRING_COMPONENT_USER_BEGIN    ((XmStringComponentType) 128)
  99.             /* 128-255 are user tags */
  100. #define XmSTRING_COMPONENT_USER_END    ((XmStringComponentType) 255)
  101.  
  102. /************************************************************************
  103.  *
  104.  *  Base widget class and record definitions.
  105.  *    Included are the definitions for XmPrimitive, XmManager,
  106.  *      and XmGadget.
  107.  *
  108.  ************************************************************************/
  109.  
  110.  
  111. /*  Primitive widget class and record definitions  */
  112.  
  113. #ifndef PRIMITIVE
  114. externalref WidgetClass xmPrimitiveWidgetClass;
  115. #endif
  116.  
  117. typedef struct _XmPrimitiveClassRec * XmPrimitiveWidgetClass;
  118. typedef struct _XmPrimitiveRec      * XmPrimitiveWidget;
  119.  
  120.  
  121. /*  Gadget widget class and record definitions  */
  122.  
  123. #ifndef GADGET
  124. externalref WidgetClass xmGadgetClass;
  125. #endif
  126.  
  127. typedef struct _XmGadgetClassRec * XmGadgetClass;
  128. typedef struct _XmGadgetRec      * XmGadget;
  129.  
  130.  
  131. /*  Manager widger class and record definitions  */
  132.  
  133.  
  134. #ifndef MANAGER
  135. externalref WidgetClass xmManagerWidgetClass;
  136. #endif
  137.  
  138. typedef struct _XmManagerClassRec * XmManagerWidgetClass;
  139. typedef struct _XmManagerRec      * XmManagerWidget;
  140.  
  141.  
  142. /************************************************************************
  143.  *  Class Test Macros (fast subclassing is in XmP.h)
  144.  ************************************************************************/
  145.  
  146. #ifndef XmIsPrimitive
  147. #define XmIsPrimitive(w)    XtIsSubclass(w, xmPrimitiveWidgetClass)
  148. #endif  /* XmIsPrimitive */
  149.  
  150. #ifndef XmIsGadget
  151. #define XmIsGadget(w)        XtIsSubclass(w, xmGadgetClass)
  152. #endif  /* XmIsGadget */
  153.  
  154. #ifndef XmIsManager
  155. #define XmIsManager(w)        XtIsSubclass(w, xmManagerWidgetClass)
  156. #endif  /* XmIsManager */
  157.  
  158.  
  159. /************************************************************************
  160.  *  Primitive Resources and define values
  161.  ************************************************************************/
  162.  
  163. /* size policy values  */
  164.  
  165. enum{    XmCHANGE_ALL,            XmCHANGE_NONE,
  166.     XmCHANGE_WIDTH,            XmCHANGE_HEIGHT
  167.     } ;
  168.  
  169. /*  unit type values  */
  170.  
  171. enum{    XmPIXELS,            Xm100TH_MILLIMETERS,
  172.     Xm1000TH_INCHES,        Xm100TH_POINTS,
  173.     Xm100TH_FONT_UNITS
  174.     } ;
  175.  
  176. /* DeleteResponse values */
  177.  
  178. enum{    XmDESTROY,            XmUNMAP,
  179.     XmDO_NOTHING
  180.     } ;
  181. enum{    XmEXPLICIT,            XmPOINTER
  182.     } ;
  183. /************************************************************************
  184.  *  Navigation defines 
  185.  ************************************************************************/
  186.  
  187. enum{    XmNONE,                XmTAB_GROUP,
  188.     XmSTICKY_TAB_GROUP,        XmEXCLUSIVE_TAB_GROUP
  189.     } ;
  190.  
  191. #define    XmDYNAMIC_DEFAULT_TAB_GROUP    ((XmNavigationType) 255)
  192.  
  193. /************************************************************************
  194.  * Audible warning
  195.  ************************************************************************/
  196.  
  197. enum{    /* XmNONE */            XmBELL = 1
  198.     } ;
  199.  
  200. /************************************************************************
  201.  *  Menu defines
  202.  ************************************************************************/
  203.  
  204. enum{    XmNO_ORIENTATION,        XmVERTICAL,
  205.     XmHORIZONTAL
  206.     } ;
  207. enum{    XmWORK_AREA,            XmMENU_BAR,
  208.     XmMENU_PULLDOWN,        XmMENU_POPUP,
  209.     XmMENU_OPTION
  210.     } ;
  211. enum{    XmNO_PACKING,            XmPACK_TIGHT,
  212.     XmPACK_COLUMN,            XmPACK_NONE
  213.     } ;
  214. enum{/* XmALIGNMENT_BASELINE_TOP,    XmALIGNMENT_CENTER,
  215.     XmALIGNMENT_BASELINE_BOTTOM, */    XmALIGNMENT_CONTENTS_TOP = 3,
  216.     XmALIGNMENT_CONTENTS_BOTTOM
  217.     } ;
  218. enum{    XmTEAR_OFF_ENABLED,        XmTEAR_OFF_DISABLED
  219.     } ;
  220. enum{    XmUNPOST,             XmUNPOST_AND_REPLAY
  221.     } ;
  222. enum{   XmLAST_POSITION = -1,           XmFIRST_POSITION
  223.     } ;
  224. /************************************************************************
  225.  *  Label/Frame defines
  226.  ************************************************************************/
  227.  
  228. enum{    XmALIGNMENT_BEGINNING,        XmALIGNMENT_CENTER,
  229.     XmALIGNMENT_END
  230.     } ;
  231. enum{   XmALIGNMENT_BASELINE_TOP,    /* XmALIGNMENT_CENTER, */
  232.     XmALIGNMENT_BASELINE_BOTTOM = 2, XmALIGNMENT_WIDGET_TOP,
  233.     XmALIGNMENT_WIDGET_BOTTOM
  234.        } ;
  235. /************************************************************************
  236.  *  Frame defines
  237.  ************************************************************************/
  238.  
  239. enum{    XmFRAME_GENERIC_CHILD,          XmFRAME_WORKAREA_CHILD,
  240.         XmFRAME_TITLE_CHILD
  241.     } ;
  242. /************************************************************************
  243.  *  ToggleButton  defines
  244.  ************************************************************************/
  245.  
  246. enum{    XmN_OF_MANY = 1,        XmONE_OF_MANY
  247.     } ;
  248. /************************************************************************
  249.  *  Form defines
  250.  ************************************************************************/
  251.  
  252. enum{    XmATTACH_NONE,            XmATTACH_FORM,
  253.     XmATTACH_OPPOSITE_FORM,        XmATTACH_WIDGET,
  254.     XmATTACH_OPPOSITE_WIDGET,    XmATTACH_POSITION,
  255.     XmATTACH_SELF
  256.     } ;
  257. enum{    XmRESIZE_NONE,            XmRESIZE_GROW,
  258.     XmRESIZE_ANY
  259.     } ;
  260. /****************************************************************************
  261.  *  Callback reasons 
  262.  ****************************************************************************/
  263.  
  264. enum{    XmCR_NONE,            XmCR_HELP,
  265.     XmCR_VALUE_CHANGED,        XmCR_INCREMENT,
  266.     XmCR_DECREMENT,            XmCR_PAGE_INCREMENT,
  267.     XmCR_PAGE_DECREMENT,        XmCR_TO_TOP,
  268.     XmCR_TO_BOTTOM,            XmCR_DRAG,
  269.     XmCR_ACTIVATE,            XmCR_ARM,
  270.     XmCR_DISARM,            XmCR_MAP = 16,
  271.     XmCR_UNMAP,            XmCR_FOCUS,
  272.     XmCR_LOSING_FOCUS,        XmCR_MODIFYING_TEXT_VALUE,
  273.     XmCR_MOVING_INSERT_CURSOR,    XmCR_EXECUTE,
  274.     XmCR_SINGLE_SELECT,        XmCR_MULTIPLE_SELECT,
  275.     XmCR_EXTENDED_SELECT,        XmCR_BROWSE_SELECT,
  276.     XmCR_DEFAULT_ACTION,        XmCR_CLIPBOARD_DATA_REQUEST,
  277.     XmCR_CLIPBOARD_DATA_DELETE,    XmCR_CASCADING,
  278.     XmCR_OK,            XmCR_CANCEL,
  279.     XmCR_APPLY = 34,        XmCR_NO_MATCH,
  280.     XmCR_COMMAND_ENTERED,        XmCR_COMMAND_CHANGED,
  281.     XmCR_EXPOSE,            XmCR_RESIZE,
  282.     XmCR_INPUT,            XmCR_GAIN_PRIMARY,
  283.     XmCR_LOSE_PRIMARY,        XmCR_CREATE,
  284.     XmCR_TEAR_OFF_ACTIVATE,        XmCR_TEAR_OFF_DEACTIVATE,
  285.     XmCR_OBSCURED_TRAVERSAL
  286.     } ;
  287. /************************************************************************
  288.  *  Callback structures 
  289.  ************************************************************************/
  290.  
  291. typedef struct
  292. {
  293.     int     reason;
  294.     XEvent  *event;
  295. } XmAnyCallbackStruct;
  296.  
  297. typedef struct
  298. {
  299.     int     reason;
  300.     XEvent  *event;
  301.     int        click_count;
  302. } XmArrowButtonCallbackStruct;
  303.  
  304. typedef struct
  305. {
  306.     int     reason;
  307.     XEvent  *event;
  308.     Window  window;
  309. } XmDrawingAreaCallbackStruct;
  310.  
  311. typedef struct
  312. {
  313.     int     reason;
  314.     XEvent  *event;
  315.     Window  window;
  316.     int        click_count;
  317. } XmDrawnButtonCallbackStruct;
  318.  
  319. typedef struct
  320. {
  321.     int     reason;
  322.     XEvent  *event;
  323.     int        click_count;
  324. } XmPushButtonCallbackStruct;
  325.  
  326. typedef struct
  327. {
  328.     int     reason;
  329.     XEvent  *event;
  330.     Widget  widget;
  331.     char    *data;
  332.     char    *callbackstruct;
  333. } XmRowColumnCallbackStruct;
  334.  
  335. typedef struct
  336. {
  337.    int reason;
  338.    XEvent * event;
  339.    int value;
  340.    int pixel;
  341. } XmScrollBarCallbackStruct;
  342.  
  343. typedef struct
  344. {
  345.    int reason;
  346.    XEvent * event;
  347.    int set;
  348. } XmToggleButtonCallbackStruct;
  349.  
  350. typedef struct
  351. {
  352.    int          reason;
  353.    XEvent    *event;
  354.    XmString  item;
  355.    int       item_length;
  356.    int       item_position;
  357.    XmString  *selected_items;
  358.    int       selected_item_count;
  359.    int       *selected_item_positions;
  360.    char      selection_type;
  361. } XmListCallbackStruct;
  362.  
  363. typedef struct
  364. {
  365.     int reason;
  366.     XEvent    *event;
  367.     XmString    value;
  368.     int        length;
  369. } XmSelectionBoxCallbackStruct;
  370.  
  371. typedef struct
  372. {
  373.     int reason;
  374.     XEvent    *event;
  375.     XmString    value;
  376.     int        length;
  377. } XmCommandCallbackStruct;
  378.  
  379. typedef struct
  380. {
  381.     int     reason;
  382.     XEvent    *event;
  383.     XmString    value;
  384.     int        length;
  385.     XmString    mask;
  386.     int        mask_length;
  387.     XmString    dir ;
  388.     int        dir_length ;
  389.     XmString    pattern ;
  390.     int        pattern_length ;
  391. } XmFileSelectionBoxCallbackStruct;
  392.  
  393.  
  394. typedef struct 
  395. {
  396.    int reason;
  397.    XEvent * event;
  398.    int value;
  399. } XmScaleCallbackStruct;
  400.  
  401.  
  402. /************************************************************************
  403.  *  PushButton defines
  404.  ************************************************************************/
  405.  
  406. enum{    XmMULTICLICK_DISCARD,        XmMULTICLICK_KEEP
  407.     } ;
  408. /************************************************************************
  409.  *  DrawnButton defines
  410.  ************************************************************************/
  411.  
  412. enum{    XmSHADOW_IN = 7,        XmSHADOW_OUT
  413.     } ;
  414. /************************************************************************
  415.  *  Arrow defines
  416.  ************************************************************************/
  417.  
  418. enum{    XmARROW_UP,            XmARROW_DOWN,
  419.     XmARROW_LEFT,            XmARROW_RIGHT
  420.     } ;
  421. /************************************************************************
  422.  *  Separator defines
  423.  *  Note: XmINVALID_SEPARATOR_TYPE marks the last+1 separator type
  424.  ************************************************************************/
  425.  
  426. enum{    XmNO_LINE,            XmSINGLE_LINE,
  427.     XmDOUBLE_LINE,            XmSINGLE_DASHED_LINE,
  428.     XmDOUBLE_DASHED_LINE,        XmSHADOW_ETCHED_IN,
  429.     XmSHADOW_ETCHED_OUT,        XmSHADOW_ETCHED_IN_DASH,
  430.     XmSHADOW_ETCHED_OUT_DASH,    XmINVALID_SEPARATOR_TYPE
  431.     } ;
  432.  
  433. enum{    XmPIXMAP = 1,            XmSTRING
  434.     } ;
  435.  
  436. /************************************************************************
  437.  *  Drag and Drop #defines
  438.  ************************************************************************/
  439.  
  440. enum{    XmWINDOW,             /* XmPIXMAP, */
  441.     XmCURSOR = 2
  442.     } ;
  443.  
  444. /************************************************************************
  445.  *  ScrollBar #defines
  446.  ************************************************************************/
  447.  
  448. enum{    XmMAX_ON_TOP,            XmMAX_ON_BOTTOM,
  449.     XmMAX_ON_LEFT,            XmMAX_ON_RIGHT
  450.     } ;
  451. /************************************************************************
  452.  *                                    *
  453.  * List Widget defines                            *
  454.  *                                    *
  455.  ************************************************************************/
  456.  
  457. enum{    XmSINGLE_SELECT,        XmMULTIPLE_SELECT,
  458.     XmEXTENDED_SELECT,        XmBROWSE_SELECT
  459.     } ;
  460. enum{    XmSTATIC,            XmDYNAMIC
  461.     } ;
  462. /************************************************************************
  463.  *                                    *
  464.  * Scrolled Window defines.                        *
  465.  *                                    *
  466.  ************************************************************************/
  467.  
  468. enum{    XmVARIABLE,            XmCONSTANT,
  469.     XmRESIZE_IF_POSSIBLE
  470.     } ;
  471. enum{    XmAUTOMATIC,            XmAPPLICATION_DEFINED
  472.     } ;
  473. enum{    /* XmSTATIC */            XmAS_NEEDED = 1
  474.     } ;
  475.  
  476. #define SW_TOP        1
  477. #define SW_BOTTOM    0
  478. #define SW_LEFT        2
  479. #define SW_RIGHT    0
  480.  
  481. #define XmTOP_LEFT    (SW_TOP | SW_LEFT)
  482. #define XmBOTTOM_LEFT    (SW_BOTTOM  | SW_LEFT)
  483. #define XmTOP_RIGHT    (SW_TOP | SW_RIGHT)
  484. #define XmBOTTOM_RIGHT    (SW_BOTTOM  | SW_RIGHT)
  485.  
  486. /************************************************************************
  487.  *                                    *
  488.  * MainWindow Resources                                                 *
  489.  *                                    *
  490.  ************************************************************************/
  491.  
  492. enum{    XmCOMMAND_ABOVE_WORKSPACE,    XmCOMMAND_BELOW_WORKSPACE
  493.     } ;
  494. /************************************************************************
  495.  *                                    *
  496.  * Text Widget defines                            *
  497.  *                                    *
  498.  ************************************************************************/
  499.  
  500. enum{    XmMULTI_LINE_EDIT,        XmSINGLE_LINE_EDIT
  501.     } ;
  502.  
  503. typedef enum{
  504.     XmTEXT_FORWARD,
  505.     XmTEXT_BACKWARD
  506.     } XmTextDirection;
  507.  
  508. typedef long XmTextPosition;
  509. typedef Atom XmTextFormat;
  510.  
  511. #define XmFMT_8_BIT    ((XmTextFormat) XA_STRING)    /* 8-bit text. */
  512. #define XmFMT_16_BIT    ((XmTextFormat) 2)        /* 16-bit text. */
  513.  
  514. #define FMT8BIT        XmFMT_8_BIT    /* For backwards compatibility only.*/
  515. #define FMT16BIT    XmFMT_16_BIT    /* For backwards compatibility only.*/
  516.  
  517. typedef enum{
  518.     XmSELECT_POSITION,        XmSELECT_WHITESPACE,
  519.     XmSELECT_WORD,            XmSELECT_LINE,
  520.     XmSELECT_ALL,            XmSELECT_PARAGRAPH
  521.     } XmTextScanType ;
  522.  
  523. typedef enum{
  524.     XmHIGHLIGHT_NORMAL,        XmHIGHLIGHT_SELECTED,
  525.     XmHIGHLIGHT_SECONDARY_SELECTED
  526.     } XmHighlightMode ;
  527.  
  528. /* XmTextBlock's are used to pass text around. */
  529.  
  530. typedef struct {
  531.     char *ptr;                  /* Pointer to data. */
  532.     int length;                 /* Number of bytes of data. */
  533.     XmTextFormat format;       /* Representations format */
  534. } XmTextBlockRec, *XmTextBlock;
  535.  
  536. typedef struct
  537. {
  538.     int reason;
  539.     XEvent  *event;
  540.     Boolean doit;
  541.     long currInsert, newInsert;
  542.     long startPos, endPos;
  543.     XmTextBlock text;
  544. } XmTextVerifyCallbackStruct, *XmTextVerifyPtr;
  545.  
  546. /* XmTextBlockWcs's are used in 1.2 modifyVerifyWcs callbacks for Text[Field]
  547.  * widgets. */
  548.  
  549. typedef struct {
  550.     wchar_t *wcsptr;            /* Pointer to data. */
  551.     int length;                 /* Number of bytes of data. */
  552. } XmTextBlockRecWcs, *XmTextBlockWcs;
  553.  
  554. typedef struct
  555. {
  556.     int reason;
  557.     XEvent  *event;
  558.     Boolean doit;
  559.     long currInsert, newInsert;
  560.     long startPos, endPos;
  561.     XmTextBlockWcs text;
  562. } XmTextVerifyCallbackStructWcs, *XmTextVerifyPtrWcs;
  563.  
  564. /* functions renamed after 1.0 release due to resource name overlap */
  565. #define XmTextGetTopPosition                XmTextGetTopCharacter
  566. #define XmTextSetTopPosition                XmTextSetTopCharacter
  567.  
  568. #define XmCOPY_FAILED        0
  569. #define XmCOPY_SUCCEEDED    1
  570. #define XmCOPY_TRUNCATED    2
  571.  
  572. /************************************************************************
  573.  *                                    *
  574.  *  DIALOG defines..  BulletinBoard and things common to its subclasses *
  575.  *          CommandBox    MessageBox    Selection    FileSelection      *
  576.  *                                    *
  577.  ************************************************************************/
  578.  
  579. /* child type defines for Xm...GetChild() */
  580.  
  581. enum{    XmDIALOG_NONE,            XmDIALOG_APPLY_BUTTON,
  582.     XmDIALOG_CANCEL_BUTTON,        XmDIALOG_DEFAULT_BUTTON,
  583.     XmDIALOG_OK_BUTTON,        XmDIALOG_FILTER_LABEL,
  584.     XmDIALOG_FILTER_TEXT,        XmDIALOG_HELP_BUTTON,
  585.     XmDIALOG_LIST,            XmDIALOG_LIST_LABEL,
  586.     XmDIALOG_MESSAGE_LABEL,        XmDIALOG_SELECTION_LABEL,
  587.     XmDIALOG_SYMBOL_LABEL,        XmDIALOG_TEXT,
  588.     XmDIALOG_SEPARATOR,        XmDIALOG_DIR_LIST,
  589.     XmDIALOG_DIR_LIST_LABEL
  590.     } ;
  591.  
  592. #define XmDIALOG_HISTORY_LIST         XmDIALOG_LIST
  593. #define XmDIALOG_PROMPT_LABEL         XmDIALOG_SELECTION_LABEL
  594. #define XmDIALOG_VALUE_TEXT           XmDIALOG_TEXT
  595. #define XmDIALOG_COMMAND_TEXT         XmDIALOG_TEXT
  596. #define XmDIALOG_FILE_LIST            XmDIALOG_LIST
  597. #define XmDIALOG_FILE_LIST_LABEL      XmDIALOG_LIST_LABEL
  598.  
  599. /*  dialog style defines  */
  600.  
  601. enum{    XmDIALOG_MODELESS,        XmDIALOG_PRIMARY_APPLICATION_MODAL,
  602.     XmDIALOG_FULL_APPLICATION_MODAL,XmDIALOG_SYSTEM_MODAL
  603.     } ;
  604.  
  605. /* The following is for compatibility only. Its use is deprecated.
  606.  */
  607. #define XmDIALOG_APPLICATION_MODAL    XmDIALOG_PRIMARY_APPLICATION_MODAL
  608.  
  609. /************************************************************************
  610.  * XmSelectionBox, XmFileSelectionBox and XmCommand - misc. stuff       *
  611.  ***********************************************************************/
  612.  
  613. /* Defines for Selection child placement
  614. */
  615. enum{    XmPLACE_TOP,            XmPLACE_ABOVE_SELECTION,
  616.     XmPLACE_BELOW_SELECTION
  617.     } ;
  618.  
  619. /* Defines for file type mask:
  620. */
  621. #define XmFILE_DIRECTORY (1 << 0)
  622. #define XmFILE_REGULAR   (1 << 1)
  623. #define XmFILE_ANY_TYPE  (XmFILE_DIRECTORY | XmFILE_REGULAR)
  624.  
  625. /* Defines for selection dialog type:
  626. */
  627. enum{    XmDIALOG_WORK_AREA,        XmDIALOG_PROMPT,
  628.     XmDIALOG_SELECTION,        XmDIALOG_COMMAND,
  629.     XmDIALOG_FILE_SELECTION
  630.     } ;
  631.  
  632. /************************************************************************
  633.  *  XmMessageBox           stuff not common to other dialogs            *
  634.  ***********************************************************************/
  635.  
  636. /* defines for dialog type */
  637.  
  638. enum{    XmDIALOG_TEMPLATE,        XmDIALOG_ERROR,
  639.     XmDIALOG_INFORMATION,        XmDIALOG_MESSAGE,
  640.     XmDIALOG_QUESTION,        XmDIALOG_WARNING,
  641.     XmDIALOG_WORKING
  642.     } ;
  643.  
  644. /*  Traversal types  */
  645.  
  646. typedef enum{
  647.     XmVISIBILITY_UNOBSCURED,    XmVISIBILITY_PARTIALLY_OBSCURED,
  648.     XmVISIBILITY_FULLY_OBSCURED
  649.     } XmVisibility ;
  650.  
  651.  
  652. typedef enum{
  653.     XmTRAVERSE_CURRENT,        XmTRAVERSE_NEXT,
  654.     XmTRAVERSE_PREV,        XmTRAVERSE_HOME,
  655.     XmTRAVERSE_NEXT_TAB_GROUP,    XmTRAVERSE_PREV_TAB_GROUP,
  656.     XmTRAVERSE_UP,            XmTRAVERSE_DOWN,
  657.     XmTRAVERSE_LEFT,        XmTRAVERSE_RIGHT
  658.     } XmTraversalDirection ;
  659.  
  660. typedef struct _XmTraverseObscuredCallbackStruct
  661. {    int            reason ;
  662.     XEvent *        event ;
  663.     Widget            traversal_destination ;
  664.     XmTraversalDirection    direction ;
  665.     } XmTraverseObscuredCallbackStruct ;
  666.  
  667. typedef unsigned char   XmNavigationType;
  668.  
  669.  
  670. /***********************************************************************
  671.  *
  672.  * SimpleMenu declarations and definitions.
  673.  *
  674.  ***********************************************************************/
  675.  
  676. typedef unsigned char XmButtonType;
  677. typedef XmButtonType * XmButtonTypeTable;
  678. typedef KeySym * XmKeySymTable;
  679. typedef XmStringCharSet * XmStringCharSetTable;
  680.  
  681. enum{    XmPUSHBUTTON = 1,        XmTOGGLEBUTTON,
  682.     XmRADIOBUTTON,            XmCASCADEBUTTON,
  683.     XmSEPARATOR,            XmDOUBLE_SEPARATOR,
  684.     XmTITLE
  685.     } ;
  686. #define XmCHECKBUTTON            XmTOGGLEBUTTON
  687.  
  688.  
  689. /********    BaseClass.c    ********/
  690. #ifdef _NO_PROTO
  691. xxx
  692. typedef XtPointer    (*XmResourceBaseProc)();
  693. #else
  694. typedef XtPointer    (*XmResourceBaseProc)( Widget, XtPointer) ;
  695. #endif
  696.  
  697. typedef struct _XmSecondaryResourceDataRec{
  698.     XmResourceBaseProc    base_proc;
  699.     XtPointer        client_data;
  700.     String        name;
  701.     String        res_class;
  702.     XtResourceList    resources;
  703.     Cardinal        num_resources;
  704. }XmSecondaryResourceDataRec, *XmSecondaryResourceData;
  705.  
  706. /********    Public Function Declarations for BaseClass.c    ********/
  707. #ifdef _NO_PROTO
  708.  
  709. extern Cardinal XmGetSecondaryResourceData() ;
  710.  
  711. #else
  712.  
  713. extern Cardinal XmGetSecondaryResourceData( 
  714.                         WidgetClass w_class,
  715.                         XmSecondaryResourceData **secondaryDataRtn) ;
  716.  
  717. #endif /* _NO_PROTO */
  718. /********    End Public Function Declarations    ********/
  719.  
  720. /********    Public Function Declarations for ImageCache.c    ********/
  721. #ifdef _NO_PROTO
  722.  
  723. extern Boolean XmInstallImage() ;
  724. extern Boolean XmUninstallImage() ;
  725. extern Pixmap XmGetPixmap() ;
  726. extern Pixmap XmGetPixmapByDepth() ;
  727. extern Boolean XmDestroyPixmap() ;
  728.  
  729. #else
  730.  
  731. extern Boolean XmInstallImage( 
  732.                         XImage *image,
  733.                         char *image_name) ;
  734. extern Boolean XmUninstallImage( 
  735.                         XImage *image) ;
  736. extern Pixmap XmGetPixmap( 
  737.                         Screen *screen,
  738.                         char *image_name,
  739.                         Pixel foreground,
  740.                         Pixel background) ;
  741. extern Pixmap XmGetPixmapByDepth( 
  742.                         Screen *screen,
  743.                         char *image_name,
  744.                         Pixel foreground,
  745.                         Pixel background,
  746.             int depth) ;
  747. extern Boolean XmDestroyPixmap( 
  748.                         Screen *screen,
  749.                         Pixmap pixmap) ;
  750.  
  751. #endif /* _NO_PROTO */
  752. /********    End Public Function Declarations    ********/
  753.  
  754. /********    Public Function Declarations for Manager.c    ********/
  755. #ifdef _NO_PROTO
  756.  
  757. extern void XmUpdateDisplay() ;
  758.  
  759. #else
  760.  
  761. extern void XmUpdateDisplay( 
  762.                         Widget w) ;
  763.  
  764. #endif /* _NO_PROTO */
  765. /********    End Public Function Declarations    ********/
  766.  
  767. /********    Primitive.c    ********/
  768.  
  769. typedef long XmOffset;
  770. typedef XmOffset *XmOffsetPtr;
  771.  
  772. /********    Public Function Declarations for Primitive.c    ********/
  773. #ifdef _NO_PROTO
  774.  
  775. extern void XmResolvePartOffsets() ;
  776. extern void XmResolveAllPartOffsets() ;
  777. extern Boolean XmWidgetGetBaselines();
  778. extern Boolean XmWidgetGetDisplayRect();
  779. #else
  780.  
  781. extern void XmResolvePartOffsets( 
  782.                         WidgetClass w_class,
  783.                         XmOffsetPtr *offset) ;
  784. extern void XmResolveAllPartOffsets( 
  785.                         WidgetClass w_class,
  786.                         XmOffsetPtr *offset,
  787.                         XmOffsetPtr *constraint_offset) ;
  788. extern Boolean XmWidgetGetBaselines(
  789.                         Widget wid,
  790.                         Dimension **baselines,
  791.                         int *line_count);
  792. extern Boolean XmWidgetGetDisplayRect(
  793.                         Widget wid,
  794.                         XRectangle *displayrect);
  795.  
  796. #endif /* _NO_PROTO */
  797. /********    End Public Function Declarations    ********/
  798.  
  799. /********    Public Function Declarations for ResConvert.c    ********/
  800. #ifdef _NO_PROTO
  801.  
  802. extern void XmRegisterConverters() ;
  803. extern void XmCvtStringToUnitType() ;
  804. extern char * XmRegisterSegmentEncoding() ;
  805. extern char * XmMapSegmentEncoding() ;
  806. extern XmString XmCvtCTToXmString() ;
  807. extern Boolean XmCvtTextToXmString() ;
  808. extern char * XmCvtXmStringToCT() ;
  809. extern Boolean XmCvtXmStringToText() ;
  810.  
  811. #else
  812.  
  813. extern void XmRegisterConverters( void ) ;
  814. extern void XmCvtStringToUnitType( 
  815.                         XrmValuePtr args,
  816.                         Cardinal *num_args,
  817.                         XrmValue *from_val,
  818.                         XrmValue *to_val) ;
  819. extern char * XmRegisterSegmentEncoding( 
  820.                         char *fontlist_tag,
  821.                         char *ct_encoding) ;
  822. extern char * XmMapSegmentEncoding( 
  823.                         char *fontlist_tag) ;
  824. extern XmString XmCvtCTToXmString( 
  825.                         char *text) ;
  826. extern Boolean XmCvtTextToXmString( 
  827.                         Display *display,
  828.                         XrmValuePtr args,
  829.                         Cardinal *num_args,
  830.                         XrmValue *from_val,
  831.                         XrmValue *to_val,
  832.                         XtPointer *converter_data) ;
  833. extern char * XmCvtXmStringToCT( 
  834.                         XmString string) ;
  835. extern Boolean XmCvtXmStringToText( 
  836.                         Display *display,
  837.                         XrmValuePtr args,
  838.                         Cardinal *num_args,
  839.                         XrmValue *from_val,
  840.                         XrmValue *to_val,
  841.                         XtPointer *converter_data) ;
  842.  
  843. #endif /* _NO_PROTO */
  844. /********    End Public Function Declarations    ********/
  845.  
  846. /********    Public Function Declarations for ResInd.c    ********/
  847. #ifdef _NO_PROTO
  848.  
  849. extern int XmConvertUnits() ;
  850. extern int XmCvtToHorizontalPixels() ;
  851. extern int XmCvtToVerticalPixels() ;
  852. extern int XmCvtFromHorizontalPixels() ;
  853. extern int XmCvtFromVerticalPixels() ;
  854. extern void XmSetFontUnits() ;
  855. extern void XmSetFontUnit() ;
  856.  
  857. #else
  858.  
  859. extern int XmConvertUnits( 
  860.                         Widget widget,
  861.                         int dimension,
  862.                         register int from_type,
  863.                         register int from_val,
  864.                         register int to_type) ;
  865. extern int XmCvtToHorizontalPixels( 
  866.                         Screen *screen,
  867.                         register int from_val,
  868.                         register int from_type) ;
  869. extern int XmCvtToVerticalPixels( 
  870.                         Screen *screen,
  871.                         register int from_val,
  872.                         register int from_type) ;
  873. extern int XmCvtFromHorizontalPixels( 
  874.                         Screen *screen,
  875.                         register int from_val,
  876.                         register int to_type) ;
  877. extern int XmCvtFromVerticalPixels( 
  878.                         Screen *screen,
  879.                         register int from_val,
  880.                         register int to_type) ;
  881. extern void XmSetFontUnits( 
  882.                         Display *display,
  883.                         int h_value,
  884.                         int v_value) ;
  885. extern void XmSetFontUnit( 
  886.                         Display *display,
  887.                         int value) ;
  888.  
  889. #endif /* _NO_PROTO */
  890. /********    End Public Function Declarations    ********/
  891.  
  892. /********    Public Function Declarations for MenuUtil.c    ********/
  893. #ifdef _NO_PROTO
  894.  
  895. extern void XmSetMenuCursor() ;
  896. extern Cursor XmGetMenuCursor() ;
  897.  
  898. #else
  899.  
  900. extern void XmSetMenuCursor( 
  901.                         Display *display,
  902.                         Cursor cursorId) ;
  903. extern Cursor XmGetMenuCursor( 
  904.                         Display *display) ;
  905.  
  906. #endif /* _NO_PROTO */
  907. /********    End Public Function Declarations    ********/
  908.  
  909. /********    Public Function Declarations for Simple.c    ********/
  910. #ifdef _NO_PROTO
  911.  
  912. extern Widget XmCreateSimpleMenuBar() ;
  913. extern Widget XmCreateSimplePopupMenu() ;
  914. extern Widget XmCreateSimplePulldownMenu() ;
  915. extern Widget XmCreateSimpleOptionMenu() ;
  916. extern Widget XmCreateSimpleRadioBox() ;
  917. extern Widget XmCreateSimpleCheckBox() ;
  918.  
  919. #else
  920.  
  921. extern Widget XmCreateSimpleMenuBar( 
  922.                         Widget parent,
  923.                         String name,
  924.                         ArgList args,
  925.                         Cardinal arg_count) ;
  926. extern Widget XmCreateSimplePopupMenu( 
  927.                         Widget parent,
  928.                         String name,
  929.                         ArgList args,
  930.                         Cardinal arg_count) ;
  931. extern Widget XmCreateSimplePulldownMenu( 
  932.                         Widget parent,
  933.                         String name,
  934.                         ArgList args,
  935.                         Cardinal arg_count) ;
  936. extern Widget XmCreateSimpleOptionMenu( 
  937.                         Widget parent,
  938.                         String name,
  939.                         ArgList args,
  940.                         Cardinal arg_count) ;
  941. extern Widget XmCreateSimpleRadioBox( 
  942.                         Widget parent,
  943.                         String name,
  944.                         ArgList args,
  945.                         Cardinal arg_count) ;
  946. extern Widget XmCreateSimpleCheckBox( 
  947.                         Widget parent,
  948.                         String name,
  949.                         ArgList args,
  950.                         Cardinal arg_count) ;
  951.  
  952. #endif /* _NO_PROTO */
  953. /********    End Public Function Declarations    ********/
  954.  
  955. /********    Public Function Declarations for VaSimple.c   ********/
  956. #ifdef _NO_PROTO
  957. extern Widget XmVaCreateSimpleMenuBar() ;
  958. extern Widget XmVaCreateSimplePopupMenu() ;
  959. extern Widget XmVaCreateSimplePulldownMenu() ;
  960. extern Widget XmVaCreateSimpleOptionMenu() ;
  961. extern Widget XmVaCreateSimpleRadioBox() ;
  962. extern Widget XmVaCreateSimpleCheckBox() ;
  963. #else /* _NO_PROTO */
  964. extern Widget XmVaCreateSimpleMenuBar( 
  965.             Widget parent,
  966.             String name,
  967.             ...) ;
  968. extern Widget XmVaCreateSimplePopupMenu(
  969.             Widget parent,
  970.             String name,
  971.             XtCallbackProc callback,
  972.             ...) ;
  973. extern Widget XmVaCreateSimplePulldownMenu( 
  974.             Widget parent,
  975.             String name,
  976.             int post_from_button,
  977.             XtCallbackProc callback,
  978.             ...) ;
  979. extern Widget XmVaCreateSimpleOptionMenu(
  980.             Widget parent,
  981.             String name,
  982.                         XmString option_label,
  983.                         KeySym option_mnemonic,
  984.                         int button_set,
  985.                         XtCallbackProc callback,
  986.             ...) ;
  987. extern Widget XmVaCreateSimpleRadioBox( 
  988.             Widget parent,
  989.             String name,
  990.             int button_set,
  991.             XtCallbackProc callback,
  992.             ...) ;
  993. extern Widget XmVaCreateSimpleCheckBox( 
  994.             Widget parent,
  995.             String name,
  996.             XtCallbackProc callback,
  997.             ...) ;
  998. #endif /* _NO_PROTO */
  999. /********    End Public Function Declarations    ********/
  1000.  
  1001. /********    Public Function Declarations for TrackLoc.c    ********/
  1002. #ifdef _NO_PROTO
  1003.  
  1004. extern Widget XmTrackingEvent() ;
  1005. extern Widget XmTrackingLocate() ;
  1006.  
  1007. #else
  1008.  
  1009. extern Widget XmTrackingEvent( 
  1010.                         Widget widget,
  1011.                         Cursor cursor,
  1012. #if NeedWidePrototypes
  1013.                         int confineTo,
  1014. #else
  1015.                         Boolean confineTo,
  1016. #endif /* NeedWidePrototypes */
  1017.                         XEvent *pev) ;
  1018. extern Widget XmTrackingLocate( 
  1019.                         Widget widget,
  1020.                         Cursor cursor,
  1021. #if NeedWidePrototypes
  1022.                         int confineTo) ;
  1023. #else
  1024.                         Boolean confineTo) ;
  1025. #endif /* NeedWidePrototypes */
  1026.  
  1027. #endif /* _NO_PROTO */
  1028. /********    End Public Function Declarations    ********/
  1029.  
  1030. /********    Visual.c    ********/
  1031. #ifdef _NO_PROTO
  1032. typedef void (*XmColorProc) ();
  1033. #else
  1034. typedef void (*XmColorProc) (XColor *bg_color, XColor *fg_color,
  1035.     XColor *sel_color, XColor *ts_color, XColor *bs_color);
  1036. #endif
  1037.  
  1038. /********    Public Function Declarations for Visual.c    ********/
  1039. #ifdef _NO_PROTO
  1040.  
  1041. extern XmColorProc XmSetColorCalculation() ;
  1042. extern XmColorProc XmGetColorCalculation() ;
  1043. extern void XmGetColors() ;
  1044. extern void XmChangeColor() ;
  1045.  
  1046. #else
  1047.  
  1048. extern XmColorProc XmSetColorCalculation( 
  1049.                         XmColorProc proc) ;
  1050. extern XmColorProc XmGetColorCalculation( void ) ;
  1051. extern void XmGetColors( 
  1052.                         Screen *screen,
  1053.                         Colormap color_map,
  1054.                         Pixel background,
  1055.                         Pixel *foreground_ret,
  1056.                         Pixel *top_shadow_ret,
  1057.                         Pixel *bottom_shadow_ret,
  1058.                         Pixel *select_ret) ;
  1059. extern void XmChangeColor(
  1060.                         Widget widget,
  1061.                         Pixel background) ;
  1062.  
  1063. #endif /* _NO_PROTO */
  1064. /********    End Public Function Declarations    ********/
  1065.  
  1066. /********    Public Function Declarations for XmString.c    ********/
  1067. #ifdef _NO_PROTO
  1068.  
  1069. extern XmString XmStringCreate() ;
  1070. extern XmString XmStringCreateSimple() ;
  1071. extern XmString XmStringCreateLocalized() ;
  1072. extern XmString XmStringDirectionCreate() ;
  1073. extern XmString XmStringSeparatorCreate() ;
  1074. extern XmString XmStringSegmentCreate() ;
  1075. extern XmString XmStringLtoRCreate() ;
  1076. extern XmString XmStringCreateLtoR() ;
  1077. extern Boolean XmStringInitContext() ;
  1078. extern void XmStringFreeContext() ;
  1079. extern XmStringComponentType XmStringGetNextComponent() ;
  1080. extern XmStringComponentType XmStringPeekNextComponent() ;
  1081. extern Boolean XmStringGetNextSegment() ;
  1082. extern Boolean XmStringGetLtoR() ;
  1083. extern XmFontListEntry XmFontListEntryCreate() ;
  1084. extern void XmFontListEntryFree() ;
  1085. extern XtPointer XmFontListEntryGetFont() ;
  1086. extern char * XmFontListEntryGetTag() ;
  1087. extern XmFontList XmFontListAppendEntry() ;
  1088. extern XmFontListEntry XmFontListNextEntry() ;
  1089. extern XmFontList XmFontListRemoveEntry() ;
  1090. extern XmFontListEntry XmFontListEntryLoad() ;
  1091. extern XmFontList XmFontListCreate() ;
  1092. extern XmFontList XmStringCreateFontList() ;
  1093. extern void XmFontListFree() ;
  1094. extern XmFontList XmFontListAdd() ;
  1095. extern XmFontList XmFontListCopy() ;
  1096. extern Boolean XmFontListInitFontContext() ;
  1097. extern Boolean XmFontListGetNextFont() ;
  1098. extern void XmFontListFreeFontContext() ;
  1099. extern XmString XmStringConcat() ;
  1100. extern XmString XmStringNConcat() ;
  1101. extern XmString XmStringCopy() ;
  1102. extern XmString XmStringNCopy() ;
  1103. extern Boolean XmStringByteCompare() ;
  1104. extern Boolean XmStringCompare() ;
  1105. extern int XmStringLength() ;
  1106. extern Boolean XmStringEmpty() ;
  1107. extern Boolean XmStringHasSubstring() ;
  1108. extern void XmStringFree() ;
  1109. extern Dimension XmStringBaseline() ;
  1110. extern Dimension XmStringWidth() ;
  1111. extern Dimension XmStringHeight() ;
  1112. extern void XmStringExtent() ;
  1113. extern int XmStringLineCount() ;
  1114. extern void XmStringDraw() ;
  1115. extern void XmStringDrawImage() ;
  1116. extern void XmStringDrawUnderline() ;
  1117.  
  1118. #else
  1119.  
  1120. extern XmString XmStringCreate( 
  1121.                         char *text,
  1122.                         XmStringCharSet charset) ;
  1123. extern XmString XmStringCreateSimple( 
  1124.                         char *text) ;
  1125. extern XmString XmStringCreateLocalized( 
  1126.                         String text) ;
  1127. extern XmString XmStringDirectionCreate( 
  1128. #if NeedWidePrototypes
  1129.                         int direction) ;
  1130. #else
  1131.                         XmStringDirection direction) ;
  1132. #endif /* NeedWidePrototypes */
  1133. extern XmString XmStringSeparatorCreate( void ) ;
  1134. extern XmString XmStringSegmentCreate( 
  1135.                         char *text,
  1136.                         XmStringCharSet charset,
  1137. #if NeedWidePrototypes
  1138.                         int direction,
  1139.                         int separator) ;
  1140. #else
  1141.                         XmStringDirection direction,
  1142.                         Boolean separator) ;
  1143. #endif /* NeedWidePrototypes */
  1144. extern XmString XmStringLtoRCreate( 
  1145.                         char *text,
  1146.                         XmStringCharSet charset) ;
  1147. extern XmString XmStringCreateLtoR( 
  1148.                         char *text,
  1149.                         XmStringCharSet charset) ;
  1150. extern Boolean XmStringInitContext( 
  1151.                         XmStringContext *context,
  1152.                         XmString string) ;
  1153. extern void XmStringFreeContext( 
  1154.                         XmStringContext context) ;
  1155. extern XmStringComponentType XmStringGetNextComponent( 
  1156.                         XmStringContext context,
  1157.                         char **text,
  1158.                         XmStringCharSet *charset,
  1159.                         XmStringDirection *direction,
  1160.                         XmStringComponentType *unknown_tag,
  1161.                         unsigned short *unknown_length,
  1162.                         unsigned char **unknown_value) ;
  1163. extern XmStringComponentType XmStringPeekNextComponent( 
  1164.                         XmStringContext context) ;
  1165. extern Boolean XmStringGetNextSegment( 
  1166.                         XmStringContext context,
  1167.                         char **text,
  1168.                         XmStringCharSet *charset,
  1169.                         XmStringDirection *direction,
  1170.                         Boolean *separator) ;
  1171. extern Boolean XmStringGetLtoR( 
  1172.                         XmString string,
  1173.                         XmStringCharSet charset,
  1174.                         char **text) ;
  1175. extern XmFontListEntry XmFontListEntryCreate( 
  1176.                         char *tag,
  1177.                         XmFontType type,
  1178.                         XtPointer font) ;
  1179. extern void XmFontListEntryFree( 
  1180.                         XmFontListEntry *entry) ;
  1181. extern XtPointer XmFontListEntryGetFont( 
  1182.                         XmFontListEntry entry,
  1183.                         XmFontType *typeReturn) ;
  1184. extern char * XmFontListEntryGetTag( 
  1185.                         XmFontListEntry entry) ;
  1186. extern XmFontList XmFontListAppendEntry( 
  1187.                         XmFontList old,
  1188.                         XmFontListEntry entry) ;
  1189. extern XmFontListEntry XmFontListNextEntry( 
  1190.                         XmFontContext context) ;
  1191. extern XmFontList XmFontListRemoveEntry( 
  1192.                         XmFontList old,
  1193.                         XmFontListEntry entry) ;
  1194. extern XmFontListEntry XmFontListEntryLoad( 
  1195.                         Display *display,
  1196.                         char *fontName,
  1197.                         XmFontType type,
  1198.                         char *tag) ;
  1199. extern XmFontList XmFontListCreate( 
  1200.                         XFontStruct *font,
  1201.                         XmStringCharSet charset) ;
  1202. extern XmFontList XmStringCreateFontList( 
  1203.                         XFontStruct *font,
  1204.                         XmStringCharSet charset) ;
  1205. extern void XmFontListFree( 
  1206.                         XmFontList fontlist) ;
  1207. extern XmFontList XmFontListAdd( 
  1208.                         XmFontList old,
  1209.                         XFontStruct *font,
  1210.                         XmStringCharSet charset) ;
  1211. extern XmFontList XmFontListCopy( 
  1212.                         XmFontList fontlist) ;
  1213. extern Boolean XmFontListInitFontContext( 
  1214.                         XmFontContext *context,
  1215.                         XmFontList fontlist) ;
  1216. extern Boolean XmFontListGetNextFont( 
  1217.                         XmFontContext context,
  1218.                         XmStringCharSet *charset,
  1219.                         XFontStruct **font) ;
  1220. extern void XmFontListFreeFontContext( 
  1221.                         XmFontContext context) ;
  1222. extern XmString XmStringConcat( 
  1223.                         XmString a,
  1224.                         XmString b) ;
  1225. extern XmString XmStringNConcat( 
  1226.                         XmString first,
  1227.                         XmString second,
  1228.                         int n) ;
  1229. extern XmString XmStringCopy( 
  1230.                         XmString string) ;
  1231. extern XmString XmStringNCopy( 
  1232.                         XmString str,
  1233.                         int n) ;
  1234. extern Boolean XmStringByteCompare( 
  1235.                         XmString a1,
  1236.                         XmString b1) ;
  1237. extern Boolean XmStringCompare( 
  1238.                         XmString a,
  1239.                         XmString b) ;
  1240. extern int XmStringLength( 
  1241.                         XmString string) ;
  1242. extern Boolean XmStringEmpty( 
  1243.                         XmString string) ;
  1244. extern Boolean XmStringHasSubstring( 
  1245.                         XmString string,
  1246.                         XmString substring) ;
  1247. extern void XmStringFree( 
  1248.                         XmString string) ;
  1249. extern Dimension XmStringBaseline( 
  1250.                         XmFontList fontlist,
  1251.                         XmString string) ;
  1252. extern Dimension XmStringWidth( 
  1253.                         XmFontList fontlist,
  1254.                         XmString string) ;
  1255. extern Dimension XmStringHeight( 
  1256.                         XmFontList fontlist,
  1257.                         XmString string) ;
  1258. extern void XmStringExtent( 
  1259.                         XmFontList fontlist,
  1260.                         XmString string,
  1261.                         Dimension *width,
  1262.                         Dimension *height) ;
  1263. extern int XmStringLineCount( 
  1264.                         XmString string) ;
  1265. extern void XmStringDraw( 
  1266.                         Display *d,
  1267.                         Window w,
  1268.                         XmFontList fontlist,
  1269.                         XmString string,
  1270.                         GC gc,
  1271. #if NeedWidePrototypes
  1272.                         int x,
  1273.                         int y,
  1274.                         int width,
  1275.                         unsigned int align,
  1276.                         unsigned int lay_dir,
  1277. #else
  1278.                         Position x,
  1279.                         Position y,
  1280.                         Dimension width,
  1281.                         unsigned char align,
  1282.                         unsigned char lay_dir,
  1283. #endif /* NeedWidePrototypes */
  1284.                         XRectangle *clip) ;
  1285. extern void XmStringDrawImage( 
  1286.                         Display *d,
  1287.                         Window w,
  1288.                         XmFontList fontlist,
  1289.                         XmString string,
  1290.                         GC gc,
  1291. #if NeedWidePrototypes
  1292.                         int x,
  1293.                         int y,
  1294.                         int width,
  1295.                         unsigned int align,
  1296.                         unsigned int lay_dir,
  1297. #else
  1298.                         Position x,
  1299.                         Position y,
  1300.                         Dimension width,
  1301.                         unsigned char align,
  1302.                         unsigned char lay_dir,
  1303. #endif /* NeedWidePrototypes */
  1304.                         XRectangle *clip) ;
  1305. extern void XmStringDrawUnderline( 
  1306.                         Display *d,
  1307.                         Window w,
  1308.                         XmFontList fntlst,
  1309.                         XmString str,
  1310.                         GC gc,
  1311. #if NeedWidePrototypes
  1312.                         int x,
  1313.                         int y,
  1314.                         int width,
  1315.                         unsigned int align,
  1316.                         unsigned int lay_dir,
  1317. #else
  1318.                         Position x,
  1319.                         Position y,
  1320.                         Dimension width,
  1321.                         unsigned char align,
  1322.                         unsigned char lay_dir,
  1323. #endif /* NeedWidePrototypes */
  1324.                         XRectangle *clip,
  1325.                         XmString under) ;
  1326.  
  1327. #endif /* _NO_PROTO */
  1328. /********    End Public Function Declarations    ********/
  1329.  
  1330. /********    Public Function Declarations for Dest.c    ********/
  1331. #ifdef _NO_PROTO
  1332.  
  1333. extern Widget XmGetDestination() ;
  1334.  
  1335. #else
  1336.  
  1337. extern Widget XmGetDestination( 
  1338.                         Display *display) ;
  1339.  
  1340. #endif /* _NO_PROTO */
  1341. /********    End Public Function Declarations    ********/
  1342.  
  1343. /********    Public Function Declarations for Traversal.c    ********/
  1344. #ifdef _NO_PROTO
  1345.  
  1346. extern Boolean XmIsTraversable() ;
  1347. extern XmVisibility XmGetVisibility() ;
  1348. extern Widget XmGetTabGroup() ;
  1349. extern Widget XmGetFocusWidget() ;
  1350. extern Boolean XmProcessTraversal() ;
  1351. extern void XmAddTabGroup() ;
  1352. extern void XmRemoveTabGroup() ;
  1353.  
  1354. #else
  1355.  
  1356. extern Boolean XmIsTraversable( 
  1357.                         Widget wid) ;
  1358. extern XmVisibility XmGetVisibility( 
  1359.                         Widget wid) ;
  1360. extern Widget XmGetTabGroup( 
  1361.                         Widget wid) ;
  1362. extern Widget XmGetFocusWidget( 
  1363.                         Widget wid) ;
  1364. extern Boolean XmProcessTraversal( 
  1365.                         Widget w,
  1366.                         XmTraversalDirection dir) ;
  1367. extern void XmAddTabGroup( 
  1368.                         Widget tabGroup) ;
  1369. extern void XmRemoveTabGroup( 
  1370.                         Widget w) ;
  1371.  
  1372. #endif /* _NO_PROTO */
  1373. /********    End Public Function Declarations    ********/
  1374.  
  1375.  
  1376. /********    Public Function Declarations for XmIm.c    ********/
  1377. #ifdef _NO_PROTO
  1378.  
  1379. extern void XmImRegister() ;
  1380. extern void XmImUnregister() ;
  1381. extern void XmImSetFocusValues() ;
  1382. extern void XmImSetValues() ;
  1383. extern void XmImUnsetFocus() ;
  1384. extern XIM XmImGetXIM() ;
  1385. extern int XmImMbLookupString() ;
  1386. extern void XmImVaSetFocusValues() ;
  1387. extern void XmImVaSetValues() ;
  1388.  
  1389. #else
  1390.  
  1391. extern void XmImRegister( 
  1392.                         Widget w,
  1393.             unsigned int reserved) ;
  1394. extern void XmImUnregister( 
  1395.                         Widget w) ;
  1396. extern void XmImSetFocusValues( 
  1397.                         Widget w,
  1398.                         ArgList args,
  1399.                         Cardinal num_args) ;
  1400. extern void XmImSetValues( 
  1401.                         Widget w,
  1402.                         ArgList args,
  1403.                         Cardinal num_args) ;
  1404. extern void XmImUnsetFocus( 
  1405.                         Widget w) ;
  1406. extern XIM XmImGetXIM( 
  1407.                         Widget w) ;
  1408. extern int XmImMbLookupString( 
  1409.                         Widget w,
  1410.                         XKeyPressedEvent *event,
  1411.                         char *buf,
  1412.                         int nbytes,
  1413.                         KeySym *keysym,
  1414.                         int *status) ;
  1415. extern void XmImVaSetFocusValues( 
  1416.                         Widget w,
  1417.                         ...) ;
  1418. extern void XmImVaSetValues( 
  1419.                         Widget w,
  1420.                         ...) ;
  1421.  
  1422. #endif /* _NO_PROTO */
  1423. /********    End Public Function Declarations    ********/
  1424.  
  1425. /********        ********/
  1426.  
  1427. #ifdef __cplusplus
  1428. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  1429. #endif
  1430.  
  1431. /* The following includes are for source compatibility.  They might be
  1432. *    removed at some future time.
  1433. */
  1434. #include <Xm/VendorS.h>
  1435.  
  1436. #endif /* _Xm_h */
  1437.  /* DON'T ADD STUFF AFTER THIS #endif */
  1438.